#ifndef __TLV_PROTOCOL_H
#define __TLV_PROTOCOL_H

// --- 服务器返回给客户端的响应类型 ---
#define RESP_OK           100 // 通用成功响应
#define RESP_ERROR        101 // 通用错误响应
#define RESP_FILE_DATA    104 // gets命令返回的文件数据

typedef struct tlv_header_s {
    int type;
    int length;
} tlv_header_t;

// 发送一个完整的 TLV 包
int send_tlv(int sockfd, int type, const char* value, int length);
// 确保发送所有数据 (处理TCP短写)
int send_all(int sockfd, const void* buffer, int length);
// 确保接收所有数据 (处理TCP短读)
int recv_all(int sockfd, void* buffer, int length);
// 上传函数
int receive_and_write_file(int sockfd, char *file_to_upload);
// 下载函数
int send_file_content(int sockfd, char *file_to_download);

#endif
